home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / BARNET / PROGRAMMING / DOCS / ZEROPAGE.TXT < prev   
Text File  |  1996-10-28  |  29KB  |  802 lines

  1. This is an incomplete list of the allocation of address space in 'zero page'.
  2. It is currently maintained by Matthew Wilcox <mrw103@york.ac.uk> and is
  3. currently available as ftp://ftp.barnet.ac.uk/pub/Acorn/zeropage.txt or
  4. http://www.york.ac.uk/~mrw103/zeropage.txt.  If you can't get it using
  5. either of these methods then mail me, asking *nicely*.  Permission is
  6. granted to copy this document freely as long as it remains intact.  Please
  7. mail me any corrections or additions to the current maintainer so they can
  8. be incorporated into the list.
  9. Last updated on Sun 13th October 1996
  10.  
  11. Contributors (alphabetically) :
  12. Andy Armstrong
  13. Carol Carpenter
  14. Ben Dooks
  15. Andrew Miles
  16. Gordon Rogers
  17. Richard Sargeant
  18. Nick Smith
  19. Matthew Wilcox
  20. Mark Wooding
  21.  
  22. This document is designed to be viewed in a spreadsheet or database that
  23. supports variable tab stops.  As a result, it is possible that when viewed
  24. in a web browser or text editor, some of the items will be misaligned.  It
  25. now also exceeds 80 columns.  Sorry.  Each of the columns headed by a number
  26. contain information for that version of the operating system.  All addresses
  27. are given in hexadecimal and refer to the start of the word containing the
  28. value.  Where a range is given, it is given to the beginning of the last
  29. word in the range.  Where it is necessary to refer to less than an entire
  30. word, the notation <address of word> B<n> is used to refer to a byte and
  31. <address of word> b<n> is used to refer to a bit within a word.  These are
  32. shown in the order that the bits 0..31 appear.  I think this is the most
  33. consistent way of showing this; let me know if you have a better method of
  34. representing these data.
  35.  
  36. I'd be amused to include details of Arthur (0.1, 1.0 & 1.2), RISC OS 2.01
  37. and RISC OS 3.0, but the chances of finding machines running any of these
  38. versions of the OS are negligible.  I've reluctantly removed the names for
  39. the bits of memory that I didn't know - I quite enjoyed people mailing me
  40. and telling me that they'd made a discovery in Garroting Deep, but they've
  41. all been split up as people found bits in the middle and some of them do
  42. have known uses on different OS.  In short, keeping them would have confused
  43. me.  Sorry.
  44.  
  45. No addresses are guaranteed to remain in the same place between different
  46. versions of the OS.  Always use the defined system interfaces in preference
  47. to direct accesses if possible.  No liability is assumed for any loss or
  48. damage which may result as the result of yourself or others use, misuse or
  49. inability to use any of the information contained in this document.
  50.  
  51. 2.00    3.10    3.50    3.60    3.70    Contents
  52.  
  53. 0    0    0    0    0    Branch Through Zero handler
  54. 4    4    4    4    4    Undefined Instruction handler
  55. 8    8    8    8    8    Software Interrupt handler
  56. C    C    C    C    C    Prefetch Abort handler
  57. 10    10    10    10    10    Data Abort handler
  58. 14    14    14    14    14    Address Exception handler
  59. 18    18    18    18    18    IRQ handler
  60. 1C-FC    1C-FC    1C-FC    1C-FC    1C-FC    FIQ routine 
  61.     100        3AC        Address called by ROM IRQ handler routine.
  62.     104 b4                Escape condition occured
  63.     104 b20                Speaker enabled
  64.     108                Value of R13_irq after last IRQ happened
  65.     10C                Monotonic time
  66.     110 B0                RAM speed (low byte)
  67.     110 B1                RAM speed (high byte)
  68.     110 b16                MEMC1 if clear, MEMC1a or later if set
  69. 114    114    114    114        Copy of MEMC control register
  70.     118    118    118        Address called on a reset.
  71. 118    11C    11C            MemoryLimit value
  72. 11C    120        398        Undefined instruction handler address
  73. 120    124        3A0        Prefetch abort handler address
  74. 124    128        3A4        Data abort handler address
  75. 128    12C        3A8        Address exception handler address
  76. 12C    130    130            Address of Error handler
  77. 130    134    134            Address of Error buffer
  78. 134    138    138            R0 on entry to Error handler
  79. 138    13C    13C            R12 on entry to CallBack handler
  80. 13C    140    140            Address of CallBack handler
  81. 140    144    144            Address of CallBack register buffer
  82. 144    148    148            R12 on entry to BreakPoint handler
  83. 148    14C    14C            BreakPoint handler address
  84. 14C    150    150            Address of BreakPoint register buffer
  85. 150    154    154            R12 on entry to Escape handler
  86. 154    158    158            Address of Escape handler
  87. 158    15C    15C            R12 on entry to Event handler
  88. 15C    160    160            Address of Event handler
  89. 164-560    164-560    -    -    -    Page tables for up to 8Mb RAM [1]
  90. -    -    170            Address of VRAM, if present, else address of screen in DRAM
  91. -    -    174            Size of VRAM, if present, else max screen size
  92. -    -    178            Address of DRAM bank 0
  93. -    -    17C            Size of DRAM bank 0
  94. -    -    180            Address of DRAM bank 1
  95. -    -    184            Size of DRAM bank 1
  96. -    -    1A0            Amount of VRAM present
  97. -    -    1C0-1EC            RAM copy of CMOS bytes 192-239
  98. -    -    1F0-2AC            RAM copy of CMOS bytes 0-191
  99. -    -    2B0-2D0            Dynamic area control block for application workspace [2]
  100. -    -    2D4-2F4            Dynamic area control block for free memory pool [2]
  101. -    -    2F8-318            Dynamic area control block for system heap [2]
  102. -    -    31C            Memory move in progress
  103. -    -    320            RAM copy of MMU control word
  104.     564    564            Address of page tables
  105.     568    568            Highest page number
  106. 160    56C    56C            Total amount of RAM in machine in bytes
  107. 564    570    570            Application space
  108. 568    574    574            R12 on entry to Unused SWI handler
  109. 56C    578    578            Unused SWI handler address
  110. 570    57C    57C            Exit handler address
  111. 574    580    580            R12 on entry to Exit handler
  112. 578    584    584            R12 on entry to UpCall handler
  113. 57C    588    588            UpCall handler address
  114.     58C    58C            Base of ROM & Podule modules list
  115.         590 B0            First key pressed in keyboard internal key format
  116.         590 B1            Second key pressed in keyboard internal key format
  117.         590 B2            Keyboard driver ID code
  118.         590 B3            Old keyboard driver ID code
  119.     594
  120.     598 B0
  121.     598 b8                Caps lock status
  122.     598 b9                Num lock status
  123.     598 B2                Mouse driver ID
  124.     598 B3                Keyboard ID
  125.     59C
  126.     5A0
  127.     5A4
  128.     5A8
  129.     5AC
  130.     5B0
  131.     5B4    5A0            Mouse X coordinates
  132.     5B8    5A4            Mouse Y coordinates
  133.     5BC
  134. 5B0    5C0    5AC            Mouse X multiplier
  135. 5B4    5C4    5B0            Mouse Y multiplier
  136.     5C8    5B4            Address of keyboard handler
  137.     5CC    5B8            Left coordinate of mouse bounding box
  138.     560    5BC            Bottom coordinate of mouse bounding box
  139.     564    5C0            Right coordinate of mouse bounding box
  140.     568    5C4            Top coordinate of mouse bounding box
  141.     56C-78C                Unknown
  142. 880-8BC    790-7CC                Addresses of module SWI linked lists
  143.     7D0    7D0            Address of Module chain
  144. 8C4    7D4    7D4            Currently Active Object pointer
  145.     7D8    7D8            UserV (0)
  146.     7DC    7DC            ErrorV (1)
  147.     7E0    7E0            IrqV (2)
  148.     7E4    7E4            WrchV (3)
  149.     7E8    7E8            RdchV (4)
  150.     7EC    7EC            CLIV (5)
  151.     7F0    7F0            ByteV (6)
  152.     7F4    7F4            WordV (7)
  153.     7F8    7F8            FileV (8)
  154.     7FC    7FC            ArgsV (9)
  155.     800    800            BGetV (10)
  156.     804    804            BPutV (11)
  157.     808    808            GBPBV (12)
  158.     80C    80C            FindV (13)
  159.     810    810            ReadLineV (14)
  160.     814    814            FSCV (15)
  161.     818    818            EventV (16)
  162.     81C    81C            ?V (17)
  163.     820    820            ?V (18)
  164.     824    824            ?V (19)
  165.     828    828            InsV (20)
  166.     82C    82C            RemV (21)
  167.     830    830            CnpV (22)
  168.     834    834            UKVDU23V (23)
  169.     838    838            UKSWIV (24)
  170.     83C    83C            UKPLOTV (25)
  171.     840    840            MouseV (26)
  172.     844    844            VDUXV (27)
  173.     848    848            TickerV (28)
  174.     84C    84C            UpcallV (29)
  175.     850    850            ChngEnvironmentV (30)
  176.     854    854            SpriteV (31)
  177.     858    858            DrawV (32)
  178.     85C    85C            EconetV (33)
  179.     860    860            ColourV (34)
  180.     864    864            PaletteV (35)
  181.     868    868            SerialV (36)
  182.     86C    86C            ?V (37)
  183.     870    870            ?V (38)
  184.     874    874            ?V (39)
  185.     878    878            ?V (40)
  186.     87C    87C            ?V (41)
  187.     880    880            ?V (42)
  188.     884    884            ?V (43)
  189.     888    888            ?V (44)
  190.     88C    88C            ?V (45)
  191.     890    890            ?V (46)
  192.     894    894            ?V (47)
  193. 988    898    898            Address of exception registers dump
  194.     89C-99C    89C-99C            Buffer for errors, GSTransing, etc.
  195.     9A0 B0    9A0 B0            Osbyte &A6
  196.     9A0 B1    9A0 B1            Osbyte &A7
  197.     9A0 B2    9A0 B2            Osbyte &A8
  198.     9A0 B3    9A0 B3            Osbyte &A9
  199.     9A4 B0    9A4 B0            Osbyte &AA
  200.     9A4 B1    9A4 B1            Osbyte &AB
  201.     9A4 B2    9A4 B2            Osbyte &AC
  202.     9A4 B3    9A4 B3            Osbyte &AD
  203.     9A8 B0    9A8 B0            Osbyte &AE
  204.     9A8 B1    9A8 B1            Osbyte &AF
  205.     9A8 B2    9A8 B2            '50 Hz counter' state (&B0)
  206.     9A8 B3    9A8 B3            Input source (&B1)
  207.     9AC B0    9AC B0            Osbyte &B2
  208.     9AC B1    9AC B1            Osbyte &B3
  209.     9AC B2    9AC B2            Osbyte &B4
  210.     9AC B3    9AC B3            RS423 input interpretation state (&B5)
  211.     9B0 B0    9B0 B0            NoIgnore state (&B6)
  212.     9B0 B1    9B0 B1            Osbyte &B7
  213.     9B0 B2    9B0 B2            Osbyte &B8
  214.     9B0 B3    9B0 B3            Osbyte &B9
  215.     9B4 B0    9B4 B0            Osbyte &BA
  216.     9B4 B1    9B4 B1            Osbyte &BB
  217.     9B4 B2    9B4 B2            Osbyte &BC
  218.     9B4 B3    9B4 B3            Osbyte &BD
  219.     9B8 B0    9B8 B0            Osbyte &BE
  220.     9B8 B1    9B8 B1            RS423 busy flag (&BF)
  221.     9B8 B2    9B8 B2            RS423 control byte (&C0)
  222.     9B8 B3    9B8 B3            Flash counter (&C1)
  223.     9BC B0    9BC B0            Duration of second colour (&C2)
  224.     9BC B1    9BC B1            Duration of first colour (&C3)
  225.     9BC B2    9BC B2            Keyboard auto-repeat delay (&C4)
  226.     9BC B3    9BC B3            Keyboard auto-repeat rate (&C5)
  227.     9C0 B0    9C0 B0            *Exec file handle (&C6)
  228.     9C0 B1    9C0 B1            *Spool file handle (&C7)
  229.     9C0 B2    9C0 B2            Break/Escape effect flags (&C8)
  230.     9C0 B3    9C0 B3            Keyboard disable flag (&C9)
  231.     9C4 B0    9C4 B0            Keyboard status byte (&CA)
  232.     9C4 B1    9C4 B1            RS423 input buffer minimum space (&CB)
  233.     9C4 B2    9C4 B2            RS423 ignore flag (&CC)
  234.     9C4 B3    9C4 B3            Osbyte &CD
  235.     9C8 B0    9C8 B0            Osbyte &CE
  236.     9C8 B1    9C8 B1            Osbyte &CF
  237.     9C8 B2    9C8 B2            Osbyte &D0
  238.     9C8 B3    9C8 B3            Osbyte &D1
  239.     9CC B0    9CC B0            Osbyte &D2
  240.     9CC B1    9CC B1            Bell sound channel (&D3)
  241.     9CC B2    9CC B2            Bell sound volume (&D4)
  242.     9CC B3    9CC B3            Bell sound frequency (&D5)
  243.     9D0 B0    9D0 B0            Bell sound duration (&D6)
  244.     9D0 B1    9D0 B1            Osbyte &D7
  245.     9D0 B2    9D0 B2            Length of function key string (&D8)
  246.     9D0 B3    9D0 B3            Paged mode line count (&D9)
  247.     9D4 B0    9D4 B0            Number of bytes in VDU queue (&DA)
  248.     9D4 B1    9D4 B1            Tab key code (&DB)
  249.     9D4 B2    9D4 B2            Escape character (&DC)
  250.     9D4 B3    9D4 B3            Interpretation of input values &C0-&CF (&DD)
  251.     9D8 B0    9D8 B0            Interpretation of input values &D0-&DF (&DE)
  252.     9D8 B1    9D8 B1            Interpretation of input values &E0-&EF (&DF)
  253.     9D8 B2    9D8 B2            Interpretation of input values &F0-&FF (&E0)
  254.     9D8 B3    9D8 B3            Interpretation of function keys (&E1)
  255.     9DC B0    9DC B0            Interpretation of Shift-function key (&E2)
  256.     9DC B1    9DC B1            Interpretation of Ctrl-function key (&E3)
  257.     9DC B2    9DC B2            Interpretation of Ctrl-Shift-function key (&E4)
  258.     9DC B3    9DC B3            Escape key status (&E5)
  259.     9E0 B0    9E0 B0            Escape effects (&E6)
  260.     9E0 B1    9E0 B1            Osbyte &E7
  261.     9E0 B2    9E0 B2            Osbyte &E8
  262.     9E0 B3    9E0 B3            Osbyte &E9
  263.     9E4 B0    9E4 B0            Osbyte &EA
  264.     9E4 B1    9E4 B1            Osbyte &EB
  265.     9E4 B2    9E4 B2            Character destination status (&EC)
  266.     9E4 B3    9E4 B3            Cursor key status (&ED)
  267.     9E8 B0    9E8 B0            Numeric keypad interpretation (&EE)
  268.     9E8 B1    9E8 B1            Osbyte &EF
  269.     9E8 B2    9E8 B2            Country flag (&F0)
  270.     9E8 B3    9E8 B3            Osbyte &F1
  271.     9EC B0    9EC B0            RS423 baud rates (&F2)
  272.     9EC B1    9EC B1            Timer switch state (&F3)
  273.     9EC B2    9EC B2            Osbyte &F4
  274.     9EC B3    9EC B3            Printer driver type (&F5)
  275.     9F0 B0    9F0 B0            Printer ignore character (&F6)
  276.     9F0 B1    9F0 B1            Break key actions (&F7)
  277.     9F0 B2    9F0 B2            Osbyte &F8
  278.     9F0 B3    9F0 B3            Osbyte &F9
  279.     9F4 B0    9F4 B0            VDU driver screen bank number (&FA)
  280.     9F4 B1    9F4 B1            Display screen bank number (&FB)
  281.     9F4 B2    9F4 B2            Osbyte &FC
  282.     9F4 B3    9F4 B3            Last break type (&FD)
  283.     9F8 B0    9F8 B0            Shift-Ctrl effect on numeric keypad (&FE)
  284.     9F8 B1    9F8 B1            Boot option (&FF)
  285.     9F8 B2
  286.     9F8 B3
  287.     9FC B0    9FC B0            Enable count for Output buffer empty event (0)
  288.     9FC B1    9FC B1            Enable count for Input buffer full event (1)
  289.     9FC B2    9FC B2            Enable count for Character input event (2)
  290.     9FC B3    9FC B3            Enable count for ADC end conversion event (3)
  291.     A00 B0    A00 B0            Enable count for Vertical sync event (4)
  292.     A00 B1    A00 B1            Enable count for Interval timer event (5)
  293.     A00 B2    A00 B2            Enable count for Escape event (6)
  294.     A00 B3    A00 B3            Enable count for RS423 error event (7)
  295.     A04 B0    A04 B0            Enable count for Econet user remote procedure event (8)
  296.     A04 B1    A04 B1            Enable count for User event (9)
  297.     A04 B2    A04 B2            Enable count for Mouse button event (10)
  298.     A04 B3    A04 B3            Enable count for Key up/down event (11)
  299.     A08 B0    A08 B0            Enable count for Sound start of bar event (12)
  300.     A08 B1    A08 B1            Enable count for PC Emulator event (13)
  301.     A08 B2    A08 B2            Enable count for Econet receive event (14)
  302.     A08 B3    A08 B3            Enable count for Econet transmit event (15)
  303.     A0C B0    A0C B0            Enable count for Econet OS remote procedure event (16)
  304.     A0C B1    A0C B1            Enable count for MIDI event (17)
  305.     A0C B2    A0C B2            Enable count for ? event (18)
  306.     A0C B3    A0C B3            Enable count for Internet event (19)
  307.     A10 B0    A10 B0            Enable count for ? event (20)
  308.     A10 B1    A10 B1            Enable count for ? event (21)
  309.     A10 B2    A10 B2            Enable count for Device overrun event (22)
  310.     A10 B3    A10 B3            Enable count for ? event (23)
  311.     A14 B0    A14 B0            Enable count for Internet receive event (24)
  312.     A14 B1    A14 B1            Enable count for Internet transmission status event (25)
  313.     A14 B2    A14 B2            Enable count for ? event (26)
  314.     A14 B3    A14 B3            Enable count for ? event (27)
  315.     A18 B0    A18 B0            Enable count for Portable BMU interrupt event (28)
  316.     A18 B1    A18 B1            Enable count for ? event (29)
  317.     A18 B2    A18 B2            Enable count for ? event (30)
  318.     A18 B3    A18 B3            Enable count for ? event (31)
  319.     A1C    A1C            LSW of first copy of system clock
  320.     A20 B0    A20 B0            MSB of first copy of system clock
  321.     A20 B1
  322.     A20 B2
  323.     A20 B3
  324.     A24    A24            LSW of second copy of system clock
  325.     A28 B0    A28 B0            MSB of second copy of system clock
  326.     A28 B1
  327.     A28 B2
  328.     A28 B3
  329.     A2C    A2C            LSW of RAM copy of RTC
  330.     A30 B0    A30 B0            MSB of RAM copy of RTC
  331.     A30 B1
  332.     A30 B2
  333.     A30 B3
  334.     A34
  335.     A38    A38            LSW of interval timer
  336.     A3C B0    A3C B0            MSB of interval timer
  337.     A3C B1
  338.     A3C B2
  339.     A3C B3    A3C B3            Current flash state
  340.         A40 B0
  341.         A40 B1
  342.         A40 B2
  343.         A40 B3            TV vertical adjust
  344.         A44 b0            TV interlace flag
  345.         A48
  346.         A4C
  347.         A50
  348.         A54
  349.         A58
  350.         A5C
  351.         A60
  352.     A64    A64            Address of first free byte in keyboard buffer    
  353.     A68    A68            Address of first free byte in RS423 input buffer
  354.     A6C    A6C            Address of first free byte in RS423 output buffer
  355.     A70    A70            Address of first free byte in printer buffer
  356.     A74    A74            Address of first free byte in sound channel 0 buffer
  357.     A78    A78            Address of first free byte in sound channel 1 buffer
  358.     A7C    A7C            Address of first free byte in sound channel 2 buffer
  359.     A80    A80            Address of first free byte in sound channel 3 buffer
  360.     A84    A84            Address of first free byte in speech buffer
  361.     A88    A88            Address of first free byte in mouse buffer
  362.     A8C    A8C            Address of first used byte in keyboard buffer
  363.     A90    A90            Address of first used byte in RS423 input buffer
  364.     A94    A94            Address of first used byte in RS423 output buffer
  365.     A98    A98            Address of first used byte in printer buffer
  366.     A9C    A9C            Address of first used byte in sound channel 0 buffer
  367.     AA0    AA0            Address of first used byte in sound channel 1 buffer
  368.     AA4    AA4            Address of first used byte in sound channel 2 buffer
  369.     AA8    AA8            Address of first used byte in sound channel 3 buffer
  370.     AAC    AAC            Address of first used byte in speech buffer
  371.     AB0    AB0            Address of first used byte in mouse buffer
  372.         AB4            Address of System Variable data block
  373.         AB8            [referred to by OS_CLI]
  374.         ABC            [referred to by OS_CLI]
  375.         AC0            [referred to by OS_CLI]
  376.         AC4            Return code
  377.         AC8            Return code limit
  378.     ACC                Current size of sprite area
  379.     AD0                Current size of RAM filing system
  380.     AD4                Current size of font cache
  381.     AD8    AD8            Base of OS_CallEvery/CallAfter list
  382.     ADC                MSW of time that program was started
  383.     AE0 B0                LSB of time that program was started
  384.     AE0 B1    AE0 B1            input file handle
  385.     AE0 B2    AE0 B2            output file handle
  386.     AE0 B3
  387.     AE4 b8                Set if outstanding callbacks
  388.     AE4 b9                Set if error occured during the last SWI.
  389.     AE4 b10                Outstanding OS_AddCallback.
  390.     AE4 b16                IOEB ASIC present
  391.     AE4 b17                82C710 present
  392.     AE4 b18                LCD ASIC present
  393.     AE4 b19                82C711 present
  394.     AE8-BE4                Program environment string
  395.         BE8            Register save block on callback from default exit handler
  396.     BEC
  397.     BF0
  398.     BF4
  399.     BF8
  400.     BFC
  401.     C00
  402.     C04
  403.     C08
  404.     C0C
  405.     C10
  406.     C14
  407.     C18
  408.     C1C
  409.     C20
  410.     C24
  411.     C28                page size in bytes
  412.     C2C
  413.     C30
  414.     C34-C54                IRQ handler routine
  415.     C58                R12 value for device 0 vector
  416.     C5C                Address of device 0 handler
  417.     C60                points to next handler for device 0
  418.     C64                R12 value for device 1 vector
  419.     C68                Address of device 1 handler
  420.     C6C                points to next handler for device 1
  421.     C70                R12 value for device 2 vector
  422.     C74                Address of device 2 handler
  423.     C78                points to next handler for device 2
  424.     C7C                R12 value for device 3 vector
  425.     C80                Address of device 3 handler
  426.     C84                points to next handler for device 3
  427.     C88                R12 value for device 4 vector
  428.     C8C                Address of device 4 handler
  429.     C90                points to next handler for device 4
  430.     C94                R12 value for device 5 vector
  431.     C98                Address of device 5 handler
  432.     C9C                points to next handler for device 5
  433.     CA0                R12 value for device 6 vector
  434.     CA4                Address of device 6 handler
  435.     CA8                points to next handler for device 6
  436.     CAC                R12 value for device 7 vector
  437.     CB0                Address of device 7 handler
  438.     CB4                points to next handler for device 7
  439.     CB8                R12 value for device 8 vector
  440.     CBC                Address of device 8 handler
  441.     CC0                points to next handler for device 8
  442.     CC4                R12 value for device 9 vector
  443.     CC8                Address of device 9 handler
  444.     CCC                points to next handler for device 9
  445.     CD0                R12 value for device 10 vector
  446.     CD4                Address of device 10 handler
  447.     CD8                points to next handler for device 10
  448.     CDC                R12 value for device 11 vector
  449.     CE0                Address of device 11 handler
  450.     CE4                points to next handler for device 11
  451.     CE8                R12 value for device 12 vector
  452.     CEC                Address of device 12 handler
  453.     CF0                points to next handler for device 12
  454.     CF4                R12 value for device 13 vector
  455.     CF8                Address of device 13 handler
  456.     CFC                points to next handler for device 13
  457.     D00                R12 value for device 14 vector
  458.     D04                Address of device 14 handler
  459.     D08                points to next handler for device 14
  460.     D0C                R12 value for device 15 vector
  461.     D10                Address of device 15 handler
  462.     D14                points to next handler for device 15
  463.     D18                R12 value for no device
  464.     D1C                address of no device handler
  465.     D20                points to next handler for no device
  466.     D24-E20                IRQ register A priority table
  467.     E24-F20                IRQ register B priority table
  468.     F24    F24            Address of AddCallBack list
  469.     F28-F3C    F28-F3C            Heap manager workspace (USR/SVC)
  470.     F40-F54    F40-F54            Heap manager workspace (IRQ)
  471.     F58
  472.         F5C            Address of printer buffer
  473.         F60            Size of printer buffer
  474. -    F64                Unique Machine ID word 0
  475. -    F68                Unique Machine ID word 1
  476.     F6C
  477.     F70
  478.     F74
  479.     F78
  480.     F7C
  481. -    F80 B0                Kernel flag to prevent reentering MessageTrans_ErrorLookup
  482.     F80 B1
  483.     F80 B2
  484.     F80 B3
  485.     F84
  486.     F88
  487.     F8C
  488.     F90
  489.     F94
  490.     F98
  491.     F9C
  492.     FA0
  493.     FA4
  494.     FA8
  495.     FAC
  496.     FB0
  497.     FB4
  498.     FB8
  499.     FBC
  500.     FC0
  501.     FC4
  502.     FC8
  503.     FCC
  504.     FD0
  505.     FD4
  506.     FD8
  507.     FDC
  508.     FE0
  509.     FE4
  510.     FE8
  511.     FEC
  512. -    FF0                Address of SharedCLibrary:Messages messagetrans block
  513.     FF4                Private workspace pointer for FPEmulator
  514.     FF8                Bottom 16 bits of task handle
  515.     FFC                Modula-2 private word.
  516.  
  517. Start of VDU workspace.  Some of the 'Contents' have a bracketed number
  518. after them; these values are available through OS_ReadVduVariables with that
  519. reason code.
  520.  
  521.     1000-101C                Foreground ECF pattern or repeated colour
  522.     1020-103C                Background ECF pattern or repeated colour
  523.     1040                GCOL action for foreground colour (151)
  524.     1044                GCOL action for background colour (152)
  525.     1048                Graphics foreground colour (153)
  526.     104C                Graphics background colour (154)
  527.     1050                Left-hand column of the graphics window (128)
  528.     1054                Bottom row of the graphics window (129)
  529.     1058                Right-hand column of the graphics window (130)
  530.     105C                Top row of the graphics window (131)
  531.     1060 B0
  532.     1060 B1
  533.     1060 B2
  534.     1060 B3                Base of VDU queue
  535.     1064-1070            Rest of VDU queue
  536.     1074                Offset of top of VDU queue
  537.     1078                Address to call when VDU queue full
  538.     107C                Amount of RAM required by current screen mode
  539.     1080                X window limit
  540.     1084                Y window limit
  541.     1088                Length of a row in pixels
  542.     108C                
  543.     1090                Log2 of (LineLength/5)
  544.     1094 b0                Non-graphic mode
  545.     1094 b1                Teletext
  546.     1094 b2                Gap mode
  547.     1098                X Eigenvalue of pixels
  548.     109C                Y Eigenvalue of pixels
  549.     10A0                Log2 of number of bytes per character 
  550.     10A4                Log2 of number of bits per pixel
  551.     10A8                Default ECF, dependent on bits per pixel.
  552.     10AC                Maximum text column value
  553.     10B0                Maximum text row value
  554.     10B4                [referred to by ROM PaletteV]
  555.     10B8                Log2 of number of pixels per word
  556.     10BC                Pointer to current GCOL/PLOT colour codes
  557.     10C0                Address of the start of screen used by VDU drivers (148)
  558.     10C4                Number of pixels per word - 1.
  559.     10C8
  560.     10CC                Log2 of the number of colours
  561.     10D0                Log2 of the number of bits by which colours are shifted
  562.     10D4
  563.     10D8
  564.     10DC
  565.     10E0                Left-hand column of the text window (132)
  566.     10E4                Bottom row of the text window (133)
  567.     10E8                Right-hand column of the text window (134)
  568.     10EC                Top row of the text window (135)
  569.     10F0                x coordinate of the graphics origin (ec) (136)
  570.     10F4                y coordinate of the graphics origin (ec) (137)
  571.     10F8                x coordinate of the graphics cursor (ec) (138)
  572.     10FC                y coordinate of the graphics cursor (ec) (139)
  573.     1100                x coordinate of oldest graphics cursor (ic) (140)
  574.     1104                y coordinate of oldest graphics cursor (ic) (141)
  575.     1108                x coordinate of previous graphics cursor (ic) (142)
  576.     110C                y coordinate of previous graphics cursor (ic) (143)
  577.     1110                x coordinate of the graphics cursor (ic) (144)
  578.     1114                y coordinate of the graphics cursor (ic) (145)
  579.     1118                x coordinate of new point (ic) (146)
  580.     111C                y coordinate of new point (ic) (147)
  581.     1120                Text foreground colour (155)
  582.     1124                Text background colour (156)
  583.     1128                Output text cursor X coordinates
  584.     112C                Output text cursor Y coordinates
  585.     1130                Absolute address on the screen of output cursor
  586.     1134                Input text cursor X coordinates
  587.     1138                Input text cursor Y coordinates
  588.     113C                Absolute address on the screen of input cursor
  589.     1140                [referred to by VDU 23,8]
  590.     1144                Number of lines left to clear in the text block
  591.     1148 b0                Printer output enabled by VDU 2
  592.     1148 b3                Text window enabled
  593.     1148 b4                Shadow mode enabled
  594.     114C B0                X Offset of the near corner for VDU 23,8
  595.     114C B1                Y Offset of the near corner for VDU 23,8
  596.     114C B2                X Offset of the text cursor in the current text window
  597.     114C B3                Y Offset of the text cursor in the current text window
  598.     1150 B0                X Offset of the far corner for VDU 23,8
  599.     1150 B1                Y Offset of the far corner for VDU 23,8
  600.     1150 B2
  601.     1150 B3
  602.     1154 B0                X start coordinate for the VDU 23,8 block
  603.     1154 B1                Y start coordinate for the VDU 23,8 block
  604.     1154 B2                X end coordinate for the VDU 23,8 block
  605.     1154 B3                Y end coordinate for the VDU 23,8 block
  606.     1158                Cursor mask
  607.     115C                Relative address of the top line of the copy cursor
  608.     1160                Relative address of the bottom line of the copy cursor
  609.     1164                Cursor counter
  610.     1168                Delay on cursor toggling (in Vsyncs)
  611.     116C                Actual value given on last VDU 23,0,10
  612.     1170                EOR mask to invert pixels on screen for current mode
  613.     1174                Address of routine to display either cursor in this mode
  614.     1178                Address of the start of screen used by display hardware (149)
  615.     117C                
  616.     1180
  617.     1184                Highest logical colour number available in this mode
  618.     1188
  619.     118C                Current screen mode or pointer to mode selector block
  620.     1190
  621.     1194
  622.     1198
  623.     119C
  624.     11A0
  625.     11A4
  626.     11A8
  627.     11AC
  628.     11B0
  629.     11B4
  630.     11B8
  631.     11BC
  632.     11C0
  633.     11C4
  634.     11C8
  635.     11CC
  636.     11D0                Current screen mode number
  637.     11D4                Tint for text foreground colour (159)
  638.     11D8                Tint for text background colour (160)
  639.     11DC                Tint for graphics foreground colour (157)
  640.     11E0                Tint for graphics background colour (158)
  641.     11E4                Amount of memory currently allocated to the screen (150)
  642.     11E8                Highest mode number available (161)
  643.     11EC
  644.     11F0 b0                [referenced by ReadVduVars]
  645.     11F0 b1                [referenced by ReadVduVars]
  646.     11F0 b2                [referenced by ReadVduVars]
  647.     11F0 b3                text printing direction vertical if set
  648.     11F0 b8                [referenced by OS_Word 22]
  649.     11F0 b9                Cursor state
  650.     11F0 b21                ChangedBox calculation enabled if set
  651.     11F0 b30                [referenced by ReadVduVars]
  652.     11F4                Stack of cursor on/off calls
  653.     11F8
  654.     11FC
  655.     1200
  656.     1204
  657.     1208
  658.     120C
  659.     1210
  660.     1214
  661.     1218
  662.     121C
  663.     1220
  664.     1224
  665.     1228                VIDC clock speed in kHz (172)
  666.     122C - 135C                Graphics workspace.  Variety of uses.
  667.     1360                x size of VDU 5 chars (in pixels) (162)
  668.     1364                y size of VDU 5 chars (in pixels) (163)
  669.     1368                x spacing of VDU 5 chars (in pixels) (164)
  670.     136C                y spacing of VDU 5 chars (in pixels) (165)
  671.     1370                x size of VDU 4 chars (in pixels) (167)
  672.     1374                y size of VDU 4 chars (in pixels) (168)
  673.     1378                x spacing of VDU 4 chars (in pixels) (169)
  674.     137C                y spacing of VDU 4 chars (in pixels) (170)
  675.     1380                Address of fast line-draw routine (166)
  676.     1384                Address of colour blocks for current GCOLs (171)
  677.     1388                First flash colour for logical colour 0
  678.     138C                First flash colour for logical colour 1
  679.     1390                First flash colour for logical colour 2
  680.     1394                First flash colour for logical colour 3
  681.     1398                First flash colour for logical colour 4
  682.     139C                First flash colour for logical colour 5
  683.     13A0                First flash colour for logical colour 6
  684.     13A4                First flash colour for logical colour 7
  685.     13A8                First flash colour for logical colour 8
  686.     13AC                First flash colour for logical colour 9
  687.     13B0                First flash colour for logical colour 10
  688.     13B4                First flash colour for logical colour 11
  689.     13B8                First flash colour for logical colour 12
  690.     13BC                First flash colour for logical colour 13
  691.     13C0                First flash colour for logical colour 14
  692.     13C4                First flash colour for logical colour 15
  693.     13C8                First flash colour for border
  694.     13CC                First flash colour for mouse colour 1
  695.     13D0                First flash colour for mouse colour 2
  696.     13D4                First flash colour for mouse colour 3
  697.     13D8
  698.     13DC
  699.     13E0
  700.     13E4
  701.     13E8
  702.     13EC
  703.     13F0
  704.     13F4
  705.     13F8                Second flash colour for logical colour 0
  706.     13FC                Second flash colour for logical colour 1
  707.     1400                Second flash colour for logical colour 2
  708.     1404                Second flash colour for logical colour 3
  709.     1408                Second flash colour for logical colour 4
  710.     140C                Second flash colour for logical colour 5
  711.     1410                Second flash colour for logical colour 6
  712.     1414                Second flash colour for logical colour 7
  713.     1418                Second flash colour for logical colour 8
  714.     141C                Second flash colour for logical colour 9
  715.     1420                Second flash colour for logical colour 10
  716.     1424                Second flash colour for logical colour 11
  717.     1428                Second flash colour for logical colour 12
  718.     142C                Second flash colour for logical colour 13
  719.     1430                Second flash colour for logical colour 14
  720.     1434                Second flash colour for logical colour 15
  721.     1438                Second flash colour for border
  722.     143C                Second flash colour for mouse colour 1
  723.     1440                Second flash colour for mouse colour 2
  724.     1444                Second flash colour for mouse colour 3
  725.     1448
  726.     144C
  727.     1450
  728.     1454
  729.     1458
  730.     145C
  731.     1460
  732.     1464
  733.     1468                [used by ROM PaletteV in mysterious circumstances]
  734.     146C
  735.     1470
  736.     1474
  737.     1478
  738.     147C
  739.     1480 - 14BC                Foreground ECF
  740.     14C0 - 14FC                Background ECF
  741.     1500 - 153C                Background ECF masked against background
  742.     1540                Dot pattern count down to restarting pattern
  743.     1544                Dot pattern current state word 0
  744.     1548                Dot pattern current state word 1
  745.     154C                Dot pattern repeat length
  746.     1550b0                Native ECFs (opposed to BBC-style)
  747.     1554                Address of system sprite area
  748.     1558 - 1564                Name of currently selected sprite
  749.     1568                Pointer to current sprite in system sprite area
  750.     156C B0                Height of pointer 1
  751.     156C B1                Height of pointer 2
  752.     156C B2                Height of pointer 3
  753.     156C B3                Height of pointer 4
  754.     1570 B0                ActiveX of pointer 1
  755.     1570 B1                ActiveX of pointer 2
  756.     1570 B2                ActiveX of pointer 3
  757.     1570 B3                ActiveX of pointer 4
  758.     1574 B0                ActiveY of pointer 1
  759.     1574 B1                ActiveY of pointer 2
  760.     1574 B2                ActiveY of pointer 3
  761.     1574 B3                ActiveY of pointer 4
  762.     1578 B0                Current pointer number
  763.     1578 b7                Pointer not linked
  764.     157C                Pointer X coordinates
  765.     1580                Pointer Y coordinates
  766.     1584                Copy of VIDC control register
  767.     1588
  768.     158C
  769.     1590
  770.     1594
  771.     1598
  772.     159C
  773.     15A0 B0                ClaimScreenMemory flag
  774.     15A0 B1
  775.     15A0 B2
  776.     15A0 B3
  777.     15A4 - 1668                Unknown
  778.     166C                ChangedBox flag word
  779.     1670                ChangedBox x coordinate of left edge
  780.     1674                ChangedBox y coordinate of bottom edge
  781.     1678                ChangedBox x coordinate of right edge
  782.     167C                ChangedBox y coordinate of top edge
  783.     1680 - 3FFC                Unknown
  784.     4000-7FFC                RISC OS scratch space
  785.  
  786. [0] Sorry for using footnotes, but some entries would be too big
  787. otherwise
  788.  
  789. [1] Bottom 28 bits are the logical address of the physical page of RAM that
  790. this entry corresponds to.  The top nybble is the page protection level.
  791.  
  792. [2] The format of a dynamic area control block is:
  793. +00     Address of next entry in list
  794. +04     Area number
  795. +08     Address of memory associated with memory
  796. +0C     Flags word (see OS_DynamicArea)
  797. +10     Current size of area
  798. +14     Maximum size of area
  799. +18     r12 for area handler
  800. +1C     Address of area handler
  801. +20     Address of name of area
  802.